分享人:徐童
目录
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
在实现一个页面前,我们需要先清楚该页面的业务逻辑。
混沌的状态思路不清晰,不利于编程。今天我们来看一下任务4的两个功能页面,杀人和投票的业务逻辑是什么,它们有什么区别。
什么是业务逻辑?
业务逻辑部分是软件产品的核心,它客观存在于软件产品内部,界面交互部分是业务逻辑与使用者进行交流的接口,使用者通过界面交互部分,与业务进行交流。软件产品除界面和交互外的一切都可看作是广义上的业务逻辑。
1.杀人的业务逻辑?
2.投票的业务逻辑?
3.简易版二者区别?
4.定义游戏结束?
简易版:
杀人的业务逻辑?
一.玩家无操作时:1.打印出每个玩家的身份方框。2.标记出已经出局的玩家。
二.选择杀死玩家时:1。点击选中玩家的方框时,给出相应被选中提示。不可以选择已出局玩家。杀手不可以杀死同伙。3.更换选择玩家时,该玩家状态标记为被选中,其他玩家都为未选中。
三.确认杀死玩家时,对该玩家的对象属性更改。例如生命属性更改为killed,并记录死亡天数。
投票的业务逻辑?
一.玩家无操作时:1.打印出每个玩家的身份方框。2.标记出已经出局的玩家。
二.选择投死玩家时:1。点击选中玩家的方框时,给出相应被选中提示。不可以选择已出局玩家。3.更换选择玩家时,该玩家状态标记为被选中,其他玩家都为未选中。
三.确认杀死玩家时,对该玩家的对象属性更改。例如生命属性更改为voted。记录该玩家死亡天数。
四.每次投票结束后,天数+1.
五.判断游戏是否结束。
简易版二者区别?
杀人时不可以选择同阵营玩家。投票时,玩家不知道阵营身份,可以不分阵营的选择投死玩家。投票后天数+1.
定义游戏结束?
判断条件?
每天结束后判断玩家人数,当杀手人数大于等于平民人数时游戏结束,或者当杀手人数为0时结束游戏。
1.如何获取玩家方框内的文字?
$(".box").click(function () { //获取被选中的盒子内文字 var roleText=$($(this).find(".role")).text();
2.如何判断是否达成条件?
在这里分享一个思路,如果其他同学有不同想法欢迎分享讨论。
var aliveKill=[]; var aliveVill=[];循环总数组,使用判断条件分别把活着的杀手和活着的平民存储到相应数组里。
如果是多人客户端版狼人杀,杀人和投票的业务逻辑应该怎么安排呢?
在简易版基础上添加逻辑。
杀人:杀手玩家可以看到同阵营玩家的身份。其他玩家视角,所有玩家身份不显示。有多个杀手时,选择要杀的玩家不统一,则少数服从多数,如果每个杀手选择对象均不同,那么?提案一:从候选者里随机选择一个玩家杀死。
投票:所有玩家都看不到其他玩家的身份。投票时不同玩家投票不同,选取票数最多的投死。若出现最多票数相同情况,再考虑。提案一:从中随机选择一个。
参考一:细说业务逻辑
参考二:如何理解业务逻辑
简易版的业务逻辑,你有其他的想法吗? 如何实现?
BY : 徐童